

const E = window.wangEditor;
const editor_flow = new E('#flow');
const editor_intro = new E('#intro');
const editUrl = '/upload';//服务器访问地址
initEditor(editor_flow)
initEditor(editor_intro)




$(
    function () {
        findById();
    }
)






layui.use(['form','upload','layer'],function () {

    var $ = layui.jquery;
    let upload = layui.upload;
    let form = layui.form;
    let layer = layui.layer;
    let pic =$('#head_pic');

    var uploadInst=upload.render({
        elem: '#up'
        , url:'/upload'//改成您自己的上传接口
        , before: function (obj) {
            //预读本地文件示例，不支持ie8
            obj.preview(function (index, file, result) {

            });
        }
        , done: function (res) {

            let result = res.img
            console.log(res.img)
            pic.show()
            $('#head_pic').attr('src', result); //图片链接（base64）
            if (res.code > 0) {
                return layer.msg('上传失败');
            }
            //上传成功
        }
        , error: function () {
            //演示失败状态，并实现重传
            var demoText = $('#demoText');
            demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
            demoText.find('.demo-reload').on('click', function () {
                uploadInst.upload();
            });
        }
    });

    form.on('submit(edit)',function (data) {
        data = data.field;
        data.loginName=sessionStorage.getItem("loginName")
        data.id=sessionStorage.getItem("serviceId");
        data.flow = editor_flow.txt.html();
        data.intro = editor_intro.txt.html();
        data.head_pic = $('#head_pic').attr('src')
        $.ajax({
            url:'/back/service/edit',
            data:data,
            dataType:'json',
            type:'post',
            success:function (data) {
                if(data.result=="notLogin"){
                    window.open("/html/login.html", "_top");
                }
                console.log(data);
                if (data.result == "success") {
                    //发异步，把数据提交给php
                    layer.alert("修改成功", {
                            icon: 6
                        },
                        function () {
                            //关闭当前frame
                            xadmin.close();

                            // 可以对父窗口进行刷新
                            xadmin.father_reload();
                        });
                } else {
                    layer.alert("修改失败", {
                        icon: 1
                    });
                }
            }

        });
        return false;

    })
})

function findById() {
    let id = sessionStorage.getItem("serviceId");
    console.log(id)
    $.ajax({
        url:'/back/service/findInfo',
        type:'get',
        dataType:'json',
        data:{id:id,loginName:sessionStorage.getItem("loginName")},
        success:function (res) {
            if(res.result=="notLogin"){
                window.open("/html/login.html", "_top");
            }
            let data = res.data
            createSelect(data.dependenceObj )
            $("#serviceName").val(data.serviceName);
            setEditor(editor_flow,data.flow)
            setEditor(editor_intro,data.intro)
            $("#price").val(data.price);
            $("#marketPrice").val(data.marketPrice);
            $("#head_pic").attr('src',data.face)


            console.log(res)
        }
    })

}

function createSelect(getRole) {
    let select = $("#type")


    layui.use('form',function () {

        $.ajax({
            url:'/back/service/type/all',
            dataType:'json',
            type:'get',
            data:{loginName:sessionStorage.getItem("loginName")},
            success:function (res) {
                if(res.result=="notLogin"){
                    window.open("/html/login.html", "_top");
                }
                select.empty()
                let data =res.types;
                select.empty()
                $.each(data,function (index, item) {

                    select.append(new Option(item.type,item.type))

                    console.log(select)
                })
                select.val(getRole)
                layui.form.render("select");
            }
        })
    })
}







layui.use(['upload','form','layer'], function() {

    var $ = layui.jquery
        , upload = layui.upload;
    let form = layui.form;
    let layer = layui.layer
    let pic = $('#head_pic')



    //普通图片上传
    var uploadInst = upload.render({
        elem: '#test1'
        , url: '/upload' //改成您自己的上传接口
        , before: function (obj) {
            //预读本地文件示例，不支持ie8
            obj.preview(function (index, file, result) {


            });
        }
        , done: function (res) {
            let result = res.img
            console.log(res.img)
            $('#head_pic').attr('src', result); //图片链接（base64）
            if (res.code > 0) {
                return layer.msg('上传失败');
            }
            //上传成功
        }
        , error: function () {
            //演示失败状态，并实现重传
            var demoText = $('#demoText');
            demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
            demoText.find('.demo-reload').on('click', function () {
                uploadInst.upload();
            });
        }
    });
})

function initEditor(editor){
    const editUrl = '/upload';//服务器访问地址
    editor.customConfig.menus = [
        'head',  // 标题
        'bold',  // 粗体
        'fontSize',  // 字号
        'fontName',  // 字体
        'italic',  // 斜体
        'underline',  // 下划线
        'strikeThrough',  // 删除线
        'foreColor',  // 文字颜色//
        'backColor',  // 背景颜色
        'link',  // 插入链接
        'justify',  // 对齐方式
        'emoticon',  // 表情
        'image',  // 插入图片
        'table',  // 表格
        'undo',  // 撤销
        'redo'  // 重复
    ];
    editor.customConfig.uploadImgShowBase64 = true;  // 使用 base64 保存图片
    editor.customConfig.uploadImgServer = editUrl; // 上传图片到服务器
    editor.customConfig.showLinkImg = false;// 隐藏“网络图片”tab
//配置属性名称，绑定请求的图片数据
//controller会用到，可以随便设置，但是一定要与controller一致
    editor.customConfig.uploadFileName = 'imgHref';
    editor.customConfig.withCredentials = true;
// 将图片大小限制为 5M
    editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
    editor.customConfig.uploadImgHooks = {
        before: function (xhr, editor, files) {
            // 图片上传之前触发
            // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象，files 是选择的图片文件

            // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传
            // return {
            //     prevent: true,
            //     msg: '放弃上传'
            // }
        },
        success: function (xhr, editor, result) {
            // 图片上传并返回结果，图片插入成功之后触发
            // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象，result 是服务器端返回的结果
            console.log(result);
        },
        fail: function (xhr, editor, result) {
            // 图片上传并返回结果，但图片插入错误时触发
            // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象，result 是服务器端返回的结果
        },
        error: function (xhr, editor) {
            // 图片上传出错时触发
            // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象
        },
        timeout: function (xhr, editor) {
            // 图片上传超时时触发
            // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象
        },

        // 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式，可使用该配置
        // （但是，服务器端返回的必须是一个 JSON 格式字符串！！！否则会报错）
        customInsert: function (insertImg, result, editor) {
            // 图片上传并返回结果，自定义插入图片的事件（而不是编辑器自动插入图片！！！）
            // insertImg 是插入图片的函数，editor 是编辑器对象，result 是服务器端返回的结果

            // 举例：假如上传图片成功后，服务器端返回的是 {url:'....'} 这种格式，即可这样插入图片：
            let url = result.img;
            console.log("url:", result.img);
            // console.log("aaaaaaaa:",url);
            insertImg(url)//回显到富文本里面
            // result 必须是一个 JSON 格式字符串！！！否则报错
        }
    };


    editor.create();



}

function setEditor(editor,htmlData) {
    editor.txt.html(htmlData)
}